/*
 * @Author: Xiaojian Pan
 * @Date: 2025-07-18 20:07:34
 * @LastEditTime: 2025-07-18 20:31:55
 * @LastEditors: Wenyu Ouyang
 * @Description: Source code recreated from a .class file by IntelliJ IDEA (powered by FernFlower decompiler)
 * @FilePath: /hydromodeljava/src/main/java/tech/waterism/modelbase/PredictBase.java
 * Copyright (c) 2023-2026 Wenyu Ouyang. All rights reserved.
 */
package tech.waterism.modelbase;

import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;

public class PredictResult {
    private Date[] dt;
    private double[] rain;
    private double[] runoffSim;
    private double[][] rSim;
    private double[] q;
    private double[] z;
    private double[] qSim;
    private double[] zSim;
    private Map<String, List<String>> newStatus;

    public PredictResult() {
    }

    public Date[] getDt() {
        return this.dt;
    }

    public double[] getRain() {
        return this.rain;
    }

    public double[] getRunoffSim() {
        return this.runoffSim;
    }

    public double[][] getRSim() {
        return this.rSim;
    }

    public double[] getQ() {
        return this.q;
    }

    public double[] getZ() {
        return this.z;
    }

    public double[] getQSim() {
        return this.qSim;
    }

    public double[] getZSim() {
        return this.zSim;
    }

    public Map<String, List<String>> getNewStatus() {
        return this.newStatus;
    }

    public void setDt(Date[] dt) {
        this.dt = dt;
    }

    public void setRain(double[] rain) {
        this.rain = rain;
    }

    public void setRunoffSim(double[] runoffSim) {
        this.runoffSim = runoffSim;
    }

    public void setRSim(double[][] rSim) {
        this.rSim = rSim;
    }

    public void setQ(double[] q) {
        this.q = q;
    }

    public void setZ(double[] z) {
        this.z = z;
    }

    public void setQSim(double[] qSim) {
        this.qSim = qSim;
    }

    public void setZSim(double[] zSim) {
        this.zSim = zSim;
    }

    public void setNewStatus(Map<String, List<String>> newStatus) {
        this.newStatus = newStatus;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof PredictResult)) {
            return false;
        } else {
            PredictResult other = (PredictResult) o;
            if (!other.canEqual(this)) {
                return false;
            } else if (!Arrays.deepEquals(this.getDt(), other.getDt())) {
                return false;
            } else if (!Arrays.equals(this.getRain(), other.getRain())) {
                return false;
            } else if (!Arrays.equals(this.getRunoffSim(), other.getRunoffSim())) {
                return false;
            } else if (!Arrays.deepEquals(this.getRSim(), other.getRSim())) {
                return false;
            } else if (!Arrays.equals(this.getQ(), other.getQ())) {
                return false;
            } else if (!Arrays.equals(this.getZ(), other.getZ())) {
                return false;
            } else if (!Arrays.equals(this.getQSim(), other.getQSim())) {
                return false;
            } else if (!Arrays.equals(this.getZSim(), other.getZSim())) {
                return false;
            } else {
                Object this$newStatus = this.getNewStatus();
                Object other$newStatus = other.getNewStatus();
                if (this$newStatus == null) {
                    if (other$newStatus != null) {
                        return false;
                    }
                } else if (!this$newStatus.equals(other$newStatus)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(Object other) {
        return other instanceof PredictResult;
    }

    public int hashCode() {
        final int PRIME = 59;
        int result = 1;
        result = result * PRIME + Arrays.deepHashCode(this.getDt());
        result = result * PRIME + Arrays.hashCode(this.getRain());
        result = result * PRIME + Arrays.hashCode(this.getRunoffSim());
        result = result * PRIME + Arrays.deepHashCode(this.getRSim());
        result = result * PRIME + Arrays.hashCode(this.getQ());
        result = result * PRIME + Arrays.hashCode(this.getZ());
        result = result * PRIME + Arrays.hashCode(this.getQSim());
        result = result * PRIME + Arrays.hashCode(this.getZSim());
        Object $newStatus = this.getNewStatus();
        result = result * PRIME + ($newStatus == null ? 43 : $newStatus.hashCode());
        return result;
    }

    public String toString() {
        return "PredictResult(dt=" + Arrays.deepToString(this.getDt()) + ", rain=" + Arrays.toString(this.getRain())
                + ", runoffSim=" + Arrays.toString(this.getRunoffSim()) + ", rSim="
                + Arrays.deepToString(this.getRSim()) + ", q=" + Arrays.toString(this.getQ()) + ", z="
                + Arrays.toString(this.getZ()) + ", qSim=" + Arrays.toString(this.getQSim()) + ", zSim="
                + Arrays.toString(this.getZSim()) + ", newStatus=" + this.getNewStatus() + ")";
    }
}

